package com.taobao.api.domain;

import java.util.List;

import com.taobao.api.TaobaoObject;
import com.taobao.api.internal.mapping.ApiField;
import com.taobao.api.internal.mapping.ApiListField;

/**
 * 属性（指标）信息
 *
 * @author auto create
 * @since 1.0, null
 */
public class AttributeVO extends TaobaoObject {

  private static final long serialVersionUID = 6159465199566322732L;

  /**
   * 1 : java.lang.Integer 2 : java.lang.Short 3 : java.lang.Long 4 :
   * java.lang.Double 5 : java.lang.Float 6 : java.lang.String 7 :
   * java.util.Date
   */
  @ApiField("clazz_type")
  private Long              clazzType;

  /**
   * 属性编码CODE
   */
  @ApiField("code")
  private String            code;

  /**
   * 属性描述信息
   */
  @ApiField("description")
  private String            description;

  /**
   * 档案ID.档案定义了属性的取值范围。 可以通过document.get接口得到档案信息。 在根据ranges.get接口得到属性的取值范围。
   */
  @ApiField("document_id")
  private Long              documentId;

  /**
   * 唯一标识
   */
  @ApiField("id")
  private Long              id;

  /**
   * 属性必填字段：当创建模板或者实施匹配时可能会用到必填参数。如果某个属性有必填参数， 则在进行创建模板或者实时匹配时需要对这个对象的Value字段赋值。
   */
  @ApiListField("param_keys")
  @ApiField("param_key_v_o")
  private List<ParamKeyVO>  paramKeys;

  /**
   * 属性名称
   */
  @ApiField("title")
  private String            title;

  /**
   * Top 的访问权限。按位与。1：可读，2：可写，4：可规则计算
   */
  @ApiField("top_access")
  private Long              topAccess;

  /**
   * 属性所在的类型的唯一标识。 可以通过queryType接口查询到类型名称
   */
  @ApiField("type_id")
  private Long              typeId;

  /**
   * 指标单位。保留字段
   */
  @ApiField("unit")
  private String            unit;

  public Long getClazzType() {
    return this.clazzType;
  }

  public void setClazzType(Long clazzType) {
    this.clazzType = clazzType;
  }

  public String getCode() {
    return this.code;
  }

  public void setCode(String code) {
    this.code = code;
  }

  public String getDescription() {
    return this.description;
  }

  public void setDescription(String description) {
    this.description = description;
  }

  public Long getDocumentId() {
    return this.documentId;
  }

  public void setDocumentId(Long documentId) {
    this.documentId = documentId;
  }

  public Long getId() {
    return this.id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public List<ParamKeyVO> getParamKeys() {
    return this.paramKeys;
  }

  public void setParamKeys(List<ParamKeyVO> paramKeys) {
    this.paramKeys = paramKeys;
  }

  public String getTitle() {
    return this.title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public Long getTopAccess() {
    return this.topAccess;
  }

  public void setTopAccess(Long topAccess) {
    this.topAccess = topAccess;
  }

  public Long getTypeId() {
    return this.typeId;
  }

  public void setTypeId(Long typeId) {
    this.typeId = typeId;
  }

  public String getUnit() {
    return this.unit;
  }

  public void setUnit(String unit) {
    this.unit = unit;
  }

}
